Transport protocols enable distributed devices on a network to request services from remote devices. In a typical scenario, a client device sends a request or procedure call over a network to a server via a transport protocol such as the Hyper Text Transport Protocol (HTTP). The transport protocols are connection-based and require a connection to remain open between the requesting client device and the receiving server until the requested action has been performed and the response has been returned to the client device.
The use of transport protocols works very well for simple requests (i.e.: a request that does not take very long to handle ) and for situations where the number of requesting devices is limited. Socket connections are established and terminated quickly for simple requests. Requests or procedure calls which take longer to execute do not degrade system performance significantly if they occur in limited numbers. Unfortunately, the conventional use of transport protocols does not handle time-intensive procedure requests from large numbers of requesting devices well. The requirement of keeping the connection open between the requesting device and the receiving device represents a major resource drain for the receiving device which can quickly exhaust the number of available connections. The absence of available connections prevents additional devices from accessing the receiving device.